package com.ihr360.excel.aggregatemodule.service;

import com.ihr360.commons.vo.ResultInfo;
import com.ihr360.excel.vo.ImportResult;
import com.ihr360.excel.vo.ProgressContext;
import com.ihr360.excel.vo.ProgressResult;

import javax.servlet.ServletOutputStream;

/**
 * @author richey
 */
public interface ExcelAggregateService {

    /**
     * Excel文件预处理
     * 上传文件服务器
     * 解析并保存中间结果
     *
     * @param progressContext
     */
    void preHandle(ProgressContext progressContext);

    /**
     * 获取进度
     *
     * @param progressContext
     * @return
     */
    ProgressResult getProgressResult(ProgressContext progressContext);

    /**
     * 获取正确的结果集
     *
     * @param progressContext
     * @return
     */
    ImportResult getImportResult(ProgressContext progressContext);

    /**
     * 中断流程
     *
     * @param progressContext
     * @return
     */
    ResultInfo interruptProgress(ProgressContext progressContext);

    /**
     * 下载错误文件
     * @param progressContext
     * @param outputStream
     */
    void downloadErrorFile(ProgressContext progressContext, ServletOutputStream outputStream);
}
